package com.itstyle.seckill.topic.jichu.genericity;

import lombok.Data;

/**
 * @Auther: liuwenxiang
 * @Date: 2020/3/11 21:47
 * @Description:
 * 泛型：定义一个泛指的类型，实例化将泛指的类型具体化
 * 为了声明的时候，能代表的更加广泛。
 */
@Data
public class  Bird<T> implements Animal<Integer> {//泛型实现接口，要将接口的泛型具体化
    T sex;


    @Override
    public void type(Integer type) {

    }
    //<T> 泛型声明 extends 泛型限制   ps:注意"类泛型"和"方法泛型"的定义区别
    public <T extends Float> T aa(T t){
        return  t;
    }

    public static void main(String[] args) {
        Bird<String> bird =new Bird<String>();//实例化的时候，要将类泛型具体化
        bird.setSex("aa");//类泛型是作用与类的成员变量
        bird.aa(2F);//方法泛型，虽然泛型名称与类泛型一样(也可以不一样),但是代表各自含义

    }
}
